<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 比较运算符   >  <   >=   <=       ==  ===   !=(值不相等)    !==(不全等)

        // 结果一定是布尔值


        // NaN   not a number   非数字的集合

        // 比较运算符的表达式中，如果有数字，那么就都转为数字进行比较
        //     字符串转数字   
        //          纯数字字符串    转数字
        //          非纯数字字符串   NaN

        //     布尔值转数字
        //          true -> 1
        //          false -> 0

        //     undefined转数字    NaN

        //    null转数字   0

        // 如果比较运算符的表达式中都是字符串的时候，就比较ASCII值


        // 在判断相等的时候(==) , null 不会进行数据类型的转化     null != 0
        // 但是在比较大小的时候  null会进行转化



        // 在编程中，没有连等式的写法





        console.log(2 > 1);   //  true

        console.log(2 >= 2);   // true


        // == 判断值相等的意思          !=
        console.log(1 == '1');   // true


        // ===  全等 判断值和数据类型都相等的意思      !==
        console.log(1 === '1');  // false


        // 报错  =   赋值    赋值只能赋给变量，1不是变量
        // console.log(1 = '1');



        console.log(1 != 2);

        console.log(1 !== '1');




        // 字符串与字符串比较的时候比较的是ASCII值
        //    一位一位的比较每个字母的ASCII值，直到比出大小就立即结束
        console.log('hi' > 'hello');





        // 字符串与数字进行比较
        //    数字与纯数字字符串比较的时候    比的是数值
        //    数字与非纯数字字符串比较的时候   都为false
        //         此时字符串2a转化为数字的时候，转化的结果是NaN


        // NaN   not a number  非数字   -> 集合
        console.log(1 < '2a');



        // 数字和布尔值比较的时候   true转为数字   ->  1     false -> 0
        console.log(10 > true);

        // 数字和undefined比较的时候   undefined转为数字 -> NaN
        console.log(2 < undefined);

        // 数字和null比较的时候   null转为数字  -> 0
        console.log(-2 > null);



        console.log('22' > '111');    // true


        // 在编程中，没有连等式   编程都是一步一步的进行计算的
        console.log(5 > 3 > 2);



        console.log(null == 0);   // false    null在==中不转化

        console.log(null == false);   // false    null在==中不转化

        // js中规定  null和undefined 值相等
        console.log(null == undefined);    // true

    </script>

</body>

</html>